package com.qfjy.config.example3;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @ClassName PayDirectConfig
 * @Description TODO 支付 直连 配置
 * @Author guoweixin
 * @Date 2022/4/1
 * @Version 1.0
 */
@Configuration
public class PayDirectConfig {
    /**
     * TODO 1、声明交换机（直连）
     *      2、声明队列（微信、支付宝、工商银行）
     *      3、交换机和队列绑定、同时要和routingkey进行绑定（路由）
     */

    /**
     * TODO 1、定义交换机 （直连）
     */
    @Bean
    public DirectExchange payDirectExChange(){
        /**
         * 交换机名称 （直连）
         */
        return new DirectExchange("payDirectExChange");
    }
    /**
     * TODO  2、声明队列（微信、支付宝、工商银行）
     */
    /**
     * TODO  微信队列
     */
    @Bean
    public Queue weixinPayQueue(){
        return new Queue("weixinPayQueue");
    }
    /**
     * TODO  支付宝队列
     */
    @Bean
    public Queue zhifubaoPayQueue(){
        return new Queue("zhifubaoPayQueue");
    }
    /**
     * TODO 3、交换机和队列绑定、同时要和routingkey进行绑定（路由）
     */
    /** 交换机和微信队列+路由*/
    @Bean
    public Binding bindWeixinPayDirectKey(Queue weixinPayQueue,DirectExchange payDirectExChange){

        return BindingBuilder.bind(weixinPayQueue).to(payDirectExChange).with("weixin");
    }
    /** 交换机和支付宝队列+路由*/
    @Bean
    public Binding bindZhifubaoPayDirectKey(Queue zhifubaoPayQueue,DirectExchange payDirectExChange){

        return BindingBuilder.bind(zhifubaoPayQueue).to(payDirectExChange).with("zhifubao");
    }
}
